package io.github.yotta.notice.common.provider;

import io.github.yotta.notice.common.dto.NoticeToken;
import io.github.yotta.notice.common.exception.TokenNotFindException;

/**
 * @author yotta
 * @date 2023/4/30 10:21
 */
public interface NoticeTokenProvider<T extends NoticeToken> {

    /**
     * 根据租户id找到该租户的对应的授权Token信息
     */
    T findToken(String tenantId) throws TokenNotFindException;

    /**
     * 注册token，用于运行时添加token
     */
    void registerToken(String tenantId,T token);

    /**
     * 根据租户id找到该租户的对应的授权Token信息
     */
    T defaultToken() throws TokenNotFindException;

}
